package com.ruoyi.app.domain.project;

import com.ruoyi.app.domain.file.FileInfo;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 作用：项目信息明细
 * </p>
 *
 * @author Zane
 * @since 2025-10-11 18:57
 */
@Getter
@Setter
@Accessors(chain = true)
public class ProjectDetail {

  /**
   * 项目ID,PN+yyyy+MM+DD+seq(6)
   */
  private String id;

  /**
   * 项目名称
   */
  private String projectName;

  /**
   * 服务品牌
   */
  private String serviceBrand;

  /**
   * 服务车型
   */
  private String serviceModel;

  /**
   * 项目类型
   */
  private String projectType;

  /**
   * 执行地点，多个地级市用逗号分隔
   */
  private String executionPlace;

  /**
   * 执行地点描述
   */
  private String executionPlaceDesc;

  /**
   * 是否有备用金，0为否，1为是
   */
  private Integer hasReserveFund;

  /**
   * 备用金金额
   */
  private BigDecimal reserveFund;

  /**
   * 项目周期开始时间
   */
  private LocalDateTime projectStart;

  /**
   * 项目周期结束时间
   */
  private LocalDateTime projectEnd;

  /**
   * 项目概况
   */
  private String projectOverview;

  /**
   * 重点事项
   */
  private String keyItems;

  /**
   * 项目预算，自动计算：备用金 + 人工成本
   */
  private BigDecimal projectBudget;

  /**
   * 项目负责人
   */
  private Long projectLeader;

  /**
   * 项目负责人姓名
   */
  private String projectLeaderName;


  /**
   * 归属公司
   */
  private Long comId;

  /**
   * 归属公司名称
   */
  private String comName;


  /**
   * 状态 :0  未发布、1 筹备中、2 执行中、3 执行完毕交付中、4 交付完毕验收中、5 验收完毕结算中、6 结算完成, 默认0
   */
  private Integer status;

  /**
   * 创建者
   */
  private Long createBy;

  /**
   * 创建者姓名
   */
  private String createByName;

  /**
   * 创建时间
   */
  private LocalDateTime createTime;

  /**
   * 备用金预算明细文件路径
   */
  private String reserveFundDetailFile;

  /**
   * 备用金预算明细文件Key
   */
  private String reserveFundDetailFileKey;

  /**
   * 备用金预算明细文件信息
   */
  private FileInfo reserveFundDetailFileInfo;

  /**
   * 团队列表文件
   */
  private String teamListFile;

  /**
   * 团队列表文件Key
   */
  private String teamListFileKey;
  /**
   * 团队列表文件信息
   */
  private FileInfo teamListFileInfo;

  /**
   * 需求列表文件
   */
  private String demandListFile;

  /**
   * 需求列表文件Key
   */
  private String demandListFileKey;
  /**
   * 需求列表文件信息
   */
  private FileInfo demandListFileInfo;

  /**
   * 是否收藏，0为否，1为是
   */
  private Integer collectFlag = 0;

  /**
   * 开票信息
   */
  private String invoice;
  /**
   * 开票标识 0为未开票 1为已开票
   */
  private Integer invoiceFlag;
}
